<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>


    <script>
        var c = console.log.bind(document)
        // 数组的空元素empty不是一种数据类型,他是由于人为修改 arr.length 或者写入时多写了逗号造成的
        var arr = [,,'a',,,'a'] 
        c(arr)  //    [empty × 2, "a", empty × 2, "a"]
        arr.length=3
        c(arr)  //[empty × 2, "a"]
        
        // empty与undefined的区别
        // undefined是一种数据类型,在数组中表示该位置的值未定义,但是它在内存还是有执行某个指向为undefined的内存地址
        // 在操作数组时,forEach会无视掉emoty,for循环会把empty转换为undefined
        
        var arr = ['a',undefined,,'c']
        c(arr)      // ['a', undefined, empty, 'c']
        c(arr.length) //4
        
        // 清空数组empty元素
        // arr.find() 

        // 查找满足条件的元素，且返回满足条件元素的第一个值，没有查找到就返回undefined
        arr = arr.find(item=>item)
        c(arr)
    </script>
    
</body>
</html>